//
// Created by Administrator on 2021/11/24.
//

#ifndef RAY_CASTING_UTILS_H
#define RAY_CASTING_UTILS_H

#include <cmath>


class Utils {
public:
    /**
     * 向量叉乘
     * c = a × b
     * @param c 结果
     * @param a 操作数
     * @param b 操作数
     */
    static void cross_prod(float *c, const float *a, const float *b);

    /**
     * 归一化
     * @param norm
     * @param a
     */
    static void normalize(float *norm, const float *a);

    /**
     * 矩阵与向量的乘积
     * c = a * b
     * @param c 结构
     * @param a 3 * 3 矩阵
     * @param b 向量
     */
    static void matrix_mul_vec(float *c, const float *a, const float *b);
};


#endif //RAY_CASTING_UTILS_H
